Systems and methods for reducing information loss in an aggregated information handling system

ABSTRACT

An information handling system is provided. The information handling system includes at least one server, that includes a plurality of ports, wherein information is transmitted to and from the at least one server on the plurality of ports, and a memory storing a table, the table storing a status indication and port on which the status indication was received. The information handling system also includes a plurality of switches coupled to the at least one server to form a link aggregation group (LAG), the plurality of switches transmitting information including the status indication to the at least one server. If the server receives more than one status indication having a master status, the at least one server is configured to stop forwarding information on at least one port on which information including a master status indication has been received after previously receiving information that did not include a master status indication.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 13/730,520, filed on Dec. 28, 2012, which is hereinincorporated by reference.

BACKGROUND

1. Technical Field

Embodiments disclosed herein are related to systems and methods forreducing information loss in an aggregated information handling system.In particular, systems and methods disclosed herein may provide forsystems and methods that remove members from a link aggregation group toreduce information loss in the event of a link failure.

2. Related Art

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems.

However, in certain information handling systems that are aggregated,link failures can result in a loss of information. In aggregatedinformation handling systems that utilize stacked switches, additionalproblems can arise after a link failure, as information may be routed toa switch that is no longer connected to the stack due to the linkfailure. What is needed are systems and methods for reducing informationloss in an aggregated information system after a link failure.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a diagram illustrating an information handling system,consistent with some embodiments.

FIG. 2 is a diagram illustrating an information handling system having abroken or failed link, consistent with some embodiments.

FIGS. 3A and 3B are diagrams illustrating packets including a master orslave status indication, consistent with some embodiments.

FIG. 4 is a flowchart illustrating a method for maintaining a linkaggregation group (LAG) in an information handling system, consistentwith some embodiments.

FIG. 5 is a flowchart illustrating a method for maintaining a linkaggregation group (LAG) in an information handling system, consistentwith some embodiments.

In the drawings, elements having the same designation have the same orsimilar functions.

DETAILED DESCRIPTION

In the following description specific details are set forth describingcertain embodiments. It will be apparent, however, to one skilled in theart that the disclosed embodiments may be practiced without some or allof these specific details. The specific embodiments presented are meantto be illustrative, but not limiting. One skilled in the art may realizeother material that, although not specifically described herein, iswithin the scope and spirit of this disclosure.

Consistent with some embodiments, there is provided an informationhandling system. The information handling system includes at least oneserver, that includes a plurality of ports, wherein information istransmitted to and from the at least one server on the plurality ofports, and a memory storing a table, the table storing a statusindication and port on which the status indication was received. Theinformation handling system also includes a plurality of switchescoupled to the at least one server to form a link aggregation group(LAG), the plurality of switches transmitting information including thestatus indication to the at least one server. If the server receivesmore than one status indication having a master status, the at least oneserver is configured to stop forwarding information on at least one porton which information including a master status indication has beenreceived after previously receiving information that did not include amaster status indication.

A method for maintaining a link aggregation group (LAG) is provided. Themethod includes transmitting, by switches that are members of the LAG,information including a status indication, receiving, by a servercoupled to the switches, the transmitted information, storing, by theserver, the status indication and a port on which the informationincluding the status indication was received, and stopping, by theserver, forwarding of information on a port on which informationincluding a master status indication has been received after previouslyreceiving information that did not include a master status indication ifthe server receives information from more than switch that includes amaster status indication.

A non-transitory computer-readable medium is provided. The mediumincludes instructions for execution by one or more processors that, whenexecuted, cause the one or more processors to perform a method formaintaining a link aggregation group (LAG). The method includesreceiving transmitted information including a status indication, storingthe status indication and a port on which the information including thestatus indication was received, and stopping forwarding of informationon a port on which information including a master status indication hasbeen received after previously receiving information that did notinclude a master status indication if more than one status indicationhas been received.

These and other embodiments will be described in further detail belowwith respect to the following figures.

For purposes of this disclosure, an information handling system mayinclude any instrumentality or aggregate of instrumentalities operableto compute, classify, process, transmit, receive, retrieve, originate,switch, store, display, manifest, detect, record, reproduce, handle, orutilize any form of information, intelligence, or data for business,scientific, control, or other purposes. For example, an informationhandling system may be a personal computer, a network storage device, orany other suitable device and may vary in size, shape, performance,functionality, and price. The information handling system may includerandom access memory (RAM), one or more processing resources such as acentral processing unit (CPU) or hardware or software control logic,read-only memory (ROM), and/or other types of nonvolatile memory.Additional components of the information handling system may include oneor more disk drives, one or more network ports for communicating withexternal devices as well as various input and output (I/O) devices, suchas a keyboard, a mouse, and a video display. The information handlingsystem may also include one or more buses operable to transmitcommunications between the various hardware components.

FIG. 1 is a diagram illustrating an information handling system,consistent with some embodiments. As shown in FIG. 1, system 110includes a server 102 coupled to N switches, 104-1-104-N (collectivelyreferred to as switches 104). Consistent with some embodiments, switches104 may be level two (L2) switches, level three (L3) switches, or acombination thereof (L2/L3). Further consistent with some embodiments,server 102 and switches 104 form a link aggregation group (LAG) 106. Insome embodiments, LAG 106 may be a Institute of Electrical andElectronic (IEEE) standard 802.3ad compliant LAG, but in otherembodiments, LAG 106 may conform to other standards. LAG combines aplurality of physical links, such as links 108 between server 102 andswitches 104, into a single logical link (LAG 106) to increase thethroughput beyond with a single connection can provide and to provideredundancy in case one link 108 fails. Moreover, LAG 106 may provideload balancing by distributing the processing and communicationsactivity across links 108 so that no single link 108 is overwhelmed. Asa result, LAG 106 may provide higher link availability and increasedlink capacity.

Consistent with some embodiments, switches 104 may be stacked switches.A switch stack is a group of switches that have been set up to operatetogether such that they show the characteristics of a single switch, buthave the port capacity of the sum of the combined switches. The switchstack may share a single internet protocol (IP) address for remoteadministration of the stack. Moreover, to form a LAG, all of theswitches in a stack may share the same bridge id so that it appears to aserver that all of the ports in a LAG are connected to the same switch.In such an arrangement, stacked switches in a LAG may be indicated asbeing either a master switch or a slave switch, with one switch beingthe master switch and the remaining switches being slave switches. Aswitch stack may also be referred to as an Ethernet fabric.

Returning to FIG. 1, switches 104 may be a switch stack 110, with switch104-1 being the master switch and switches 104-2-104-N being slaveswitches. Switches 104 may have multiple ports that may be aggregated inLAG 106. Moreover, server 102 and switches 104 may include anyappropriate combination of hardware and/or software having a processorand capable of reading instructions stored on a non-transitorymachine-readable medium for execution by the processor. Consistent withsome embodiments, server 102 and switches 104 include a machine-readablemedium, such as a memory (not shown) that includes instructions forexecution by one or more processors (not shown) for causing server andswitches 104 to perform specific tasks. For example, such instructionsmay include handling and routing information, forming a LAG, andmaintaining a LAG. Some common forms of machine-readable media includes,for example, floppy disk, flexible disk, hard disk, magnetic tape, anyother magnetic medium, CD-ROM, any other optical medium, punch cards,paper tape, any other physical medium with patterns of holes, RAM, PROM,EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any othermedium from which a processor or computer is adapted to read.

FIG. 2 is a diagram illustrating an information handling system having abroken or failed link, consistent with some embodiments. As shown inFIG. 2, system 100 has a failed or broken link 200 between switch 104-1(master) and switch 104-2 (slave). As a result of the failure, switches104-2-104-N of stack 110 will be disconnected from master switch 104-1,while all switches 104 remain coupled to server 102. In order tomaintain LAG 106 and stack 110 after link between master switch 104-1and switch 104-2 fails, at least one of remaining switches 104-2-104-Nmay have a master switch status indication. This results in a“split-brain” situation, where switch stack 110 has multiple masters,including switch 104-1, which is disconnected from stack 110 but stillcoupled to server 102, and at least one of remaining switches104-2-104-N. As a result, server 102, not knowing that there has been afailure, will continue to route information over links 108 to switches104 for forwarding, including switch 104-1. However, informationtransmitted to switch 104-1 then be sent to destinations that it can nolonger access due to the failure, which will result in transmissionfailure, or dropped packets. Similarly, and information transmitted toany of switches 104-2-104-N that is to be forwarded to switch 104-1 willalso not be able to reach its intended destination due to the failure.

FIGS. 3A and 3B are diagrams illustrating packets including a master orslave status indication, consistent with some embodiments. To reduce thetransmission failure and dropped packets that may occur following a linkfailure in a switch stack that is part of a LAG, switches 104 mayperiodically transmit information to server 104 that provides a statusindication as to whether the switch 104 transmitting the information isa master switch of the stack or a slave switch of stack 110. Consistentwith some embodiments, the periodicity of the transmission of thisinformation may be between about 1 second and 30 seconds. Server 106, orother device on the end of the LAG, may receive this information, andstore the received status indication along with a port (identifying thecorresponding switch) on which the information has been received in atable in a memory. If server 106 receives multiple status indicationsindicating that more than one switch 104 is a master, one or moreprocessors of server 106 may then check to see which ports previouslyreceived a master status indication and a slave indication. Server 106may then stop forwarding information on ports wherein a slave statusindication had been previously received, and only forward information onports associated with the first master switch (i.e., switch 104-1) toprevent information loss until broken link 200 is repaired.

As shown in FIG. 3A, packet 300 includes fields 302-320. Consistent withsome embodiments, packet 300 may be a link layer discovery protocol(LLDP) packet. Field 300 may be a preamble field, and fields 304-318 maybe a payload 301. Fields 304-312 may include information, such as adestination media access controller (MAC) address, a source MAC address,an ethertype that indicates which protocol is encapsulated in a payloadof packet 300, a chassis identification (ID) type-length-value (TLV)identifying a chassis where the originating switch 104 resides, a portID TLV identifying the port on which packet is transmitted, atime-to-live TLV, and other optional TLVs, which are shown in FIG. 3B.Field 318 may include an end of payload TLV, and field 320 may include aframe check sequence (FCS) for error detection. As shown in FIG. 3B,optional TLVs 322-330 in field 316 may include information TLVs, such asa type, a length, an identifier, a subtype, and an information string.Consistent with some embodiments, optional TLVs 322-330 in field 316 mayinclude a status indication as to whether the switch 104 from whichpacket 300 originates is a master switch in stack 110 or a slave switchin stack 110. In other embodiments, optional TLVs 322-330 in field 316may also include a status indication as to whether the switch 104 fromwhich packet 300 originates is a master or slave switch in stack 110,but also what switch 104 in stack 110 is the master that any slaveswitches are slaves to.

In operation, switches 104 organized as a stack 110 and coupled toserver 102 over links 108 to form LAG 106, have a status of either beinga master switch in stack 110 or a slave switch in stack 110, and writean indication of this status in optional TLVs 316 of packet 300. Packet300 is transmitted from each switch 104 to server 102. Server 102receives packet 300 on a port associated with a particular switch 104,determines the status of the transmitting switch, and then stores thestatus indication in optional TLVs 316 along with an associated port onwhich packet 300 was received in a memory, perhaps in a table in thememory. When server 102 stores the status indication, it will also checkto see if it has stored two consecutive master status indications fromtwo or more switches, and if more than one master status indication usseen by server 102, server 102 will check the previous entry on thatport to see if the previous entry included a master or slave indication.If server 102 determines that any of the multiple master statusindications included a slave indication on a previous entry, server 102will determine that there has been a link failure, and stop forwardinginformation on the port associated with the current master statusindication that had a previous slave status indication. Consistent withsome embodiments, optional TLV 316 may also include a status indicationas to whether the switch 104 from which packet 300 originates is amaster or slave switch in stack 110, but also what switch 104 in stack110 is the master that any slave switches are slaves to. In suchembodiments, when server 102 sees more than one master statusindication, server will stop forwarding stop forwarding information onthe port associated with the current master status indication that had aprevious slave status indication and any other ports that have alsoindicated that the port associated with the current master statusindication that had a previous slave status indication is the master.

FIG. 4 is a flowchart illustrating a method for maintaining a linkaggregation group (LAG) in an information handling system, consistentwith some embodiments. For the purpose of discussion, the method shownin FIG. 4 will be discussed with reference to FIGS. 1-3. Consistent withsome embodiments, the method shown in FIG. 4 may be embodied in anon-transient computer-readable medium stored in a memory of server 102and/or switches 104 that, when executed by one or more processors ofserver 102 and/or switches 104 cause system 100 to perform the method inFIG. 4. As shown in FIG. 4, a master or slave status indication iswritten in an optional TLV frame 316 of packet 300 by switches 104(402). Packet 300 may be a LLDP packet, and the master or slave statusindication may include a further indication as to which switch 104 theswitch writing the master/slave indication is a slave to if it is aslave switch. Switch 104 then transmits packet 300 to server 102 overlink 108 (404). Server 102 receives the transmitted packet 300 (406) andstores in a memory the master or slave status indication in the optionalTLV frame 316 of packet 300 along with an associated port on whichpacket 300 was received (408). Consistent with some embodiments, thestatus indication and the associated port may be stored in a table in amemory of server 102. Further consistent with some embodiments, server102 may also store the further indication as to which switch 104 theswitch that transmitted packet 300 is a slave to, if such a furtherindication is included in packet 300.

Returning to FIG. 4, switches 104 will periodically send packet 300, andserver will determine if more than one master status indication has beenreceived (410). Consistent with some embodiments, receiving more thanone master status indication may demonstrate that multiple switches 104believe that they are a master switch, possibly indicative of a link 108failure. If server 102 does not find multiple master switches, server102 will continue to check for multiple master status indications asswitches 104 periodically transmit packet 300 to server 102. If server102 determines that more than one master status indication has beenreceived, server 102 will determine if any of the switches 104 thattransmitted packet 300 with a master status indication had previouslytransmitted packet 300 with a slave status indication (412). As notedabove, server 102 may store the master or slave status indication alongwith the port that packet including the indication is received on. Thestatus indication and the associated port may be stored as entries in atable. Server 102 may review the entries in the table to determine ifthe previous entry for that port included a slave indication. If server102 determines that a switch 104 transmitting packet 300 with a masterstatus indication previously transmitted packet 300 having a slavestatus indication, upon receiving multiple master status indications,server 102 will stop forwarding information on the port on which themaster status indication was received (414). By stopping the forwardingof information on that port, server 102 may avoid losing informationthat may be sent over broken link 200. Moreover, one or more members ofthe LAG are essentially removed, decreasing the throughput andincreasing the load on the remaining members of the LAG, but informationloss will be eliminated or at least reduced. Further, if packet 300includes a further indication as to which switch 104 the transmittingswitch is a slave to, and that switch 104 has been removed from the LAGby server 102 stopping the transmission of information over a portassociated with that switch 104, server 102 may also stop forwardinginformation over all of the ports that are associated with switches 104that indicate that they are slave to the switch 104 that was removedfrom the LAG. If server 102 determines that a switch 104 transmittingpacket 300 with a master status indication previously transmitted packet300 having also having a master status indication, upon receivingmultiple master status indications, server 102 will continue forwardinginformation on the port on which the master status indication wasreceived, as the switch 104 from which this packet 300 will bedetermined to be the correct master switch 104 of switch stack 110(416).

FIG. 5 is a flowchart illustrating a method for maintaining a linkaggregation group (LAG) in an information handling system, consistentwith some embodiments. For the purpose of discussion, the method shownin FIG. 5 will be discussed with reference to FIGS. 1-3. Consistent withsome embodiments, the method shown in FIG. 4 may be embodied in anon-transient computer-readable medium stored in a memory of server 102that, when executed by one or more processors of server 102 cause server102 to perform the method in FIG. 5. As shown in FIG. 5, server 102receives transmitted information including a master/slave indication(502). The information may be packet 300 which may be a LLDP packet, andthe master or slave status indication may include a further indicationas to which switch 104 the switch writing the master/slave indication isa slave to if it is a slave switch. Server 102 stores in a memory themaster or slave status indication in the optional TLV frame 316 ofpacket 300 along with an associated port on which packet 300 wasreceived (504). Consistent with some embodiments, the status indicationand the associated port may be stored in a table in a memory of server102. Further consistent with some embodiments, server 102 may also storethe further indication as to which switch 104 the switch thattransmitted packet 300 is a slave to, if such a further indication isincluded in packet 300. As server 102 receives packets 300, server 102will determine if more than one master status indication has beenreceived (506). Consistent with some embodiments, receiving more thanone master status indication may demonstrate that multiple switches 104believe that they are a master switch, possibly indicative of a link 108failure. If server 102 does not find multiple master switches, server102 will continue to check for multiple master status indications asswitches 104 periodically transmit packet 300 to server 102. If server102 determines that more than one master status indication has beenreceived, server 102 will determine if any of the switches 104 thattransmitted packet 300 with a master status indication had previouslytransmitted packet 300 with a slave status indication (508). As notedabove, server 102 may store the master or slave status indication alongwith the port that packet including the indication is received on. Thestatus indication and the associated port may be stored as entries in atable. Server 102 may review the entries in the table to determine ifthe previous entry for that port included a slave indication. If server102 determines that a switch 104 transmitting packet 300 with a masterstatus indication previously transmitted packet 300 having a slavestatus indication, upon receiving multiple master status indications,server 102 will stop forwarding information on the port on which themaster status indication was received (510). By stopping the forwardingof information on that port, server 102 may avoid losing informationthat may be sent over broken link 200. Moreover, one or more members ofthe LAG are essentially removed, decreasing the throughput andincreasing the load on the remaining members of the LAG, but informationloss will be eliminated or at least reduced. Further, if packet 300includes a further indication as to which switch 104 the transmittingswitch is a slave to, and that switch 104 has been removed from the LAGby server 102 stopping the transmission of information over a portassociated with that switch 104, server 102 may also stop forwardinginformation over all of the ports that are associated with switches 104that indicate that they are slave to the switch 104 that was removedfrom the LAG. If server 102 determines that a switch 104 transmittingpacket 300 with a master status indication previously transmitted packet300 having also having a master status indication, upon receivingmultiple master status indications, server 102 will continue forwardinginformation on the port on which the master status indication wasreceived, as the switch 104 from which this packet 300 will bedetermined to be the correct master switch 104 of switch stack 110(512).

Software, in accordance with the present disclosure, such as programcode and/or data, may be stored on one or more machine-readable mediums,including non-transitory machine-readable medium. It is alsocontemplated that software identified herein may be implemented usingone or more general purpose or specific purpose computers and/orcomputer systems, networked and/or otherwise. Where applicable, theordering of various steps described herein may be changed, combined intocomposite steps, and/or separated into sub-steps to provide featuresdescribed herein.

Consequently, embodiments as described herein may provide. The examplesprovided above are exemplary only and are not intended to be limiting.One skilled in the art may readily devise other systems consistent withthe disclosed embodiments which are intended to be within the scope ofthis disclosure. As such, the application is limited only by thefollowing claims.

What is claimed is:
 1. A network device, the device comprising: aplurality of ports, each of the ports coupling the device to one of aplurality of switches arranged in a stacked switch configuration; one ormore processors coupled to the plurality of ports, the one or moreprocessors being configured to execute instructions that cause thedevice to perform a method comprising: receiving a first statusindication on a first port of the plurality of ports; and stoppingforwarding of information on the first port when the first statusindication includes a master status indication for a first switch of theplurality of switches directly coupled to the device by the first portand a second status indication previously received on the first portincludes a slave status indication for the first switch.
 2. The deviceof claim 1, wherein the method further comprises stopping forwarding ofinformation on the first port when the first status indication includesa master status indication for the first switch, a third statusindication previously received on a second port of the plurality ofports includes a master status indication for a second switch of theplurality of switches directly coupled to the device by the second port,and the first switch and the second switch are different.
 3. The deviceof claim 1, wherein the method further comprises stopping forwarding ofinformation on the first port when the first status indication includesa slave status indication for the first switch, the first statusindication identifies a second switch of the plurality of switches as amaster switch of the stacked switch configuration, a third statusindication previously received on a second port of the plurality ofports includes a master status indication for a third switch of theplurality of switches directly coupled to the device by the second port,and the second switch and the third switch are different.
 4. The deviceof claim 1, wherein the first status indication is included in a linklayer discovery protocol (LLDP) packet.
 5. The device of claim 1,wherein the method further comprises saving the first status indicationand information identifying the first port in a table.
 6. The device ofclaim 1, wherein the plurality of ports are configured to form a linkaggregation group (LAG).
 7. The device of claim 1, wherein the device isa server.
 8. A method comprising: receiving, by a network device, afirst status indication on a first port of a plurality of ports couplingthe network device to a plurality of switches in a stacked switchconfiguration; and stopping, by the network device, forwarding ofinformation on the first port when the first status indication includesa master status indication for a first switch of the plurality ofswitches directly coupled to the network device by the first port and asecond status indication previously received on the first port includesa slave status indication for the first switch.
 9. The method of claim8, further comprising stopping, by the network device, forwarding ofinformation on the first port when the first status indication includesa master status indication for the first switch, a third statusindication previously received on a second port of the plurality ofports includes a master status indication for a second switch of theplurality of switches directly coupled to the network device by thesecond port, and the first switch and the second switch are different.10. The method of claim 8, further comprising stopping, by the networkdevice, forwarding of information on the first port when the firststatus indication includes a slave status indication for the firstswitch, the first status indication identifies a second switch of theplurality of switches as a master switch of the stacked switchconfiguration, a third status indication previously received on a secondport of the plurality of ports includes a master status indication for athird switch of the plurality of switches directly coupled to thenetwork device by the second port, and the second switch and the thirdswitch are different.
 11. The method of claim 8, wherein the firststatus indication is included in a link layer discovery protocol (LLDP)packet.
 12. The method of claim 8, further comprising saving the firststatus indication and information identifying the first port in a table.13. The method of claim 8, wherein the plurality of ports are configuredto form a link aggregation group (LAG).
 14. A non-transitorycomputer-readable medium having instructions for execution by one ormore processors associated with a network device that, when executed,cause the network device to perform a method comprising: receiving afirst status indication on a first port of a plurality of ports couplingthe network device to a plurality of switches in a stacked switchconfiguration; and stopping forwarding of information on the first portwhen the first status indication includes a master status indication fora first switch of the plurality of switches directly coupled to thenetwork device by the first port and a second status indicationpreviously received on the first port includes a slave status indicationfor the first switch.
 15. The non-transitory computer-readable medium ofclaim 14, wherein the method further comprises stopping forwarding ofinformation on the first port when the first status indication includesa master status indication for the first switch, a third statusindication previously received on a second port of the plurality ofports includes a master status indication for a second switch of theplurality of switches directly coupled to the network device by thesecond port, and the first switch and the second switch are different.16. The non-transitory computer-readable medium of claim 14, wherein themethod further comprises stopping forwarding of information on the firstport when the first status indication includes a slave status indicationfor the first switch, the first status indication identifies a secondswitch of the plurality of switches as a master switch of the stackedswitch configuration, a third status indication previously received on asecond port of the plurality of ports includes a master statusindication for a third switch of the plurality of switches directlycoupled to the network device by the second port, and the second switchand the third switch are different.
 17. The non-transitorycomputer-readable medium of claim 14, wherein the first statusindication is included in a link layer discovery protocol (LLDP) packet.18. The non-transitory computer-readable medium of claim 14, wherein themethod further comprises saving the first status indication andinformation identifying the first port in a table.
 19. Thenon-transitory computer-readable medium of claim 14, wherein theplurality of ports are configured to form a link aggregation group(LAG).
 20. The non-transitory computer-readable medium of claim 14,wherein the network device is a server.